package service.impl;

import static org.junit.Assert.*;

import java.util.List;

import model.Datentraeger;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;

/**
 * Intergration test showing the basic usage of {@link DatentraegerRepository}.
 * 
 * @author Andre
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:repository-context.xml")
@Transactional
public class DatentraegerRepositorySample {

	@Autowired
	DatentraegerRepository repository;

	/**
	 * Tests inserting a datentraeger and asserts it can be loaded again.
	 */
	@Test
	public void testInsert() {

		Datentraeger datentraeger = new Datentraeger("Datentraeger");
		datentraeger.setName("Datentraeger");

		datentraeger = repository.save(datentraeger);

		assertEquals(datentraeger, repository.findOne(datentraeger.getId()));
	}

	@Test
	public void datentraeger() {

		Datentraeger datentraeger = new Datentraeger("Datentraeger");
		datentraeger.setName("Datentraeger");

		datentraeger = repository.save(datentraeger);

		List<Datentraeger> datentraegers = repository
				.findByName("Datentraeger");

		assertNotNull(datentraegers);
		assertTrue(datentraegers.contains(datentraeger));

	}

	// /**
	// * Test invocation of filmverwaltung method.
	// */
	// @Test
	// public void testFilmVerwaltungMethod() {
	//
	// Datentraeger datentraeger = new Datentraeger("Datentraeger");
	// datentraeger.setName("Datentraeger");
	//
	// datentraeger = repository.save(datentraeger);
	//
	// List<Datentraeger> datentraegers = repository
	// .filmVerwaltungBatchOperation();
	//
	// assertNotNull(datentraegers);
	// assertTrue(datentraegers.contains(datentraeger));
	// }
}
